#include "boolean.h"
#ifndef ADT_TANGGAL
#define ADT_TANGGAL
// ADT Tanggal
typedef struct {
	int hari;
	int bulan;
	int tahun;
} Tanggal;

// {SELEKTOR}
#define GetDay(X) (X).hari
#define GetMonth(X) (X).bulan
#define GetYear(X) (X).tahun

// {KONSTRUKTOR}
Tanggal CreateTanggal(int day, int month, int year);
// Membuat tipe data tanggal dengan kondisi awal parameter input
Tanggal CreateToTanggal(char X[100]);
// Membuat tipe data tanggal dari string yang merepresentasikan tanggak

// {SETTER}
// Digunakan untuk menset tiap elemen dari sebuah tanggal
void SetDay(Tanggal * X, int day);
void SetMonth(Tanggal * X, int month);
void SetYear(Tanggal * X, int year);
void SetTanggal(Tanggal * X, Tanggal Y);

// {FUNGSI LAIN}
bool IsDateEqual(Tanggal A, Tanggal B);
bool IsDateLess(Tanggal A, Tanggal B);
bool IsDateMore(Tanggal A, Tanggal B);

Tanggal NextNDay(Tanggal X, int n);
#endif
